package com.nondo.rdp.finance.service.course;

import java.util.List;

import com.nondo.rdp.auth.domain.User;
import com.nondo.rdp.auth.endpoint.model.Page;
import com.nondo.rdp.finance.domain.course.Section;
import com.nondo.rdp.finance.model.course.SectionBean;

public interface SectionService {
    /**
     * 保存课程
     *
     * @param section
     */
    Section save(Section section);

    /**
     * 根据主键ID删除课程
     *
     * @param id
     */
    void delete(Long id);

    /**
     * 根据主键更新课程
     *
     * @param section
     */
    void update(Section section);

    /**
     * 根据主键ID查询课程
     *
     * @param id
     * @return
     */
    Section findOne(Long id);

    /**
     * 分页查询课程列表
     *
     * @param page
     * @param section
     * @return
     */
    Page<Section> findAll(Page<Section> page, Section section);

    /**
     * 获取课节详情
     *
     * @param section
     * @return
     */
    SectionBean getSectionDetail(Section section);

    /**
     * 获取课程ID
     *
     * @return
     */
    Long getCourseId(Long sectionId);

    /**
     * 根据albumId和trackId获取数据库是否已经添加了该课节
     *
     * @param albumId
     * @param trackId
     * @return
     */
    Section findByAlbumIdAndTrackId(int albumId, int trackId);
    
    /**
     * 按照课程ID查询课节
     * @param courseId
     * @return
     */
	List<Section> findByCourseId(Long courseId);

	/**
	 * APP调用更新课节
	 * @param section
	 * @param user 
	 */
	void updateApp(Section section, User user);

	/**
	 * Admin调用更新课节
	 * @param section
	 * @param user 
	 */
	void updateAdmin(Section section);
}
